package com.amazon.SellingPartnerAPIAA;

import com.google.gson.annotations.SerializedName;

class LWAAccessTokenRequestMeta {
	
    @SerializedName("grant_type")
    private String grantType;

    @SerializedName("refresh_token")
    private String refreshToken;

    @SerializedName("client_id")
    private String clientId;

    @SerializedName("client_secret")
    private String clientSecret;

    @SerializedName("scope")
    private LWAClientScopes scopes;
    
    private LWAAccessTokenRequestMeta() {}

    private LWAAccessTokenRequestMeta(LWAAccessTokenRequestMeta origin) {
    	this.grantType = origin.grantType;
		this.refreshToken = origin.refreshToken;
		this.clientId = origin.clientId;
		this.clientSecret = origin.clientSecret;
		this.scopes = origin.scopes;
    }
    
    public static LWAAccessTokenRequestMeta.Builder builder(){
        return new Builder();
    }
    
    public static class Builder {
        private LWAAccessTokenRequestMeta target;

        public Builder() {
            this.target = new LWAAccessTokenRequestMeta();
        }

        public Builder grantType(String grantType) {
            target.grantType = grantType;
            return this;
        }

        public Builder refreshToken(String refreshToken) {
            target.refreshToken = refreshToken;
            return this;
        }

        public Builder clientId(String clientId) {
            target.clientId = clientId;
            return this;
        }

        public Builder clientSecret(String clientSecret) {
            target.clientSecret = clientSecret;
            return this;
        }

        public Builder scopes(LWAClientScopes scopes) {
            target.scopes = scopes;
            return this;
        }

        public LWAAccessTokenRequestMeta build() {
            return new LWAAccessTokenRequestMeta(target);
        }
    }
    
	public String getGrantType() {
		return grantType;
	}

	public void setGrantType(String grantType) {
		this.grantType = grantType;
	}

	public String getRefreshToken() {
		return refreshToken;
	}

	public void setRefreshToken(String refreshToken) {
		this.refreshToken = refreshToken;
	}

	public String getClientId() {
		return clientId;
	}

	public void setClientId(String clientId) {
		this.clientId = clientId;
	}

	public String getClientSecret() {
		return clientSecret;
	}

	public void setClientSecret(String clientSecret) {
		this.clientSecret = clientSecret;
	}

	public LWAClientScopes getScopes() {
		return scopes;
	}

	public void setScopes(LWAClientScopes scopes) {
		this.scopes = scopes;
	}

}
